全局中间件之 ConvertEmptyStringsToNull
简介
上一章,我们看了 第三个 全局中间件 TrimStrings
,知道了它的作用:对 $_GET
和 $_POST
的数据进行前后空白字符清理。
这一章,我们看 第四个 全局中间件 ConvertEmptyStringsToNull
。
通过字面意思可以出是 关于空字符转成 null
一种处理。
ConvertEmptyStringsToNull
的内容
<?php
namespace Illuminate\Foundation\Http\Middleware;
class ConvertEmptyStringsToNull extends TransformsRequest
{
/**
* 核心方法
*/
protected function transform($key, $value)
{
return is_string($value) && $value === '' ? null : $value;
}
}
喔!!!,,继承了 TransformsRequest
类,和上一章一样哦。就是 transform 方法不一样。
关于如何调用的 transform 方法,请移步上一章了解----->传送门
return is_string($value) && $value === '' ? null : $value;
这句代码意思是:如果 $_GET
或 $_POST
中的值是字符串,且这个字符串是空,那么给它转成 null 返回,否则原样返回。
附录
TrimStrings
中间件与 ConvertEmptyStringsToNull
中间件联合会造成什么样的结果呢:
假设你 GET 或 POST 上传的数据中,有一个字段,全是空格、制表符、换行符、回车符、字符串结尾符(\0
)、垂直制表符,无论多少还是混合,最后都会给你变成一个大大 null
,高兴不。。。。嘿嘿。。。